package Common;

/**
 * This component enumerates server commands.
 * When CCRM Client need a service from the CCRM server it sends the respective SERVER_COMMAND enumerator
 * When CCRM Server receive a SERVER_COMMAND enumerator it behaves according to a pre-defined sequence
 * 
 * @author GROUP 3
 *
 */
public enum SERVER_COMMANDS {
	LOG_IN,							// User login request
	LOG_OUT,						// User log-out (quit) request
	GET_CUSTOMER_BY_CONDITION,		// Get a list of customers according to condition: SELECT * FROM Customers WHERE....
	ADD_CUSTOMER,					// Insert a new customer record to DB: INSERT INTO Customers VALUES (....)
	UPDATE_CUSTOMER,				// Update Customer record in the DB: UPDATE Customers SET ... WHERE ...
	UPDATE_CUSTOMER_STATUS,			// Update Customer status in the DB. This is a special sequence of UPDATE_CUSTOMER command
	ADD_SALE,                       // Insert a new sale record to DB: INSERT INTO Sales VALUES(....)
	SHOW_SALE_DETAILS,              // Show sale's details
	ADD_CATEGORY,					// Add a new product category to the catalog
	ADD_TYPE,                       // Add a new type to product's category
	GET_CATEGORY_TYPES,				// Search the DB for a product category's types
	ADD_PRODUCT,					// Add a new product to the catalog
	ADD_PRODUCT_PICTURE,			// Add a new product picture to the catalog
	GET_PRODUCT,					// Get product details by productID
	GET_PRODUCT_UPDATE,				// Get product details for the update product screen by productID
	UPDATE_PRODUCT_STATUS,			// Change produc's status
	UPDATE_PRODUCT,					// Update product data and picture
    SHOW_SALESMEN_AND_CUSTOMERS,    // Find all of the salesmen registered in the system and customers for given template. 
    ADD_TEMPLATE,                   // Add new template details to DB.
	SEARCH_TEMPLATE,                // Search template details in DB
	SEARCH_PRODUCT,       			// Search product in DB
	VIEW_TEMPLATE,                  // view template details
	UPDATE_TEMPLATE,                // update template details in DB
	ASSIGN_TASKFORCE,               // Assign Customers to salesmen for addressing  
	ADD_PERMISSION,                 // add permission to the customer
	VIEW_SALES_FOR_SALESMAN,        // Show all the sales that the salesman participate in 
	SEARCH_TEMPLATE_BY_STATUS,      // search all templates with a specific status
	GET_REGIONS,                    // get region details
	ADD_REGION,                     // add region to DB
	CUSTOMERS_REPORT,				// generate customers report
	SHOW_CUSTOMERS_FOR_SALESMAN,    // Show all customers that assigned to the salesman for a given sale. 
	SEARCH_CUST_RATES,              //Search customers rates in external DB for assign to template
	ASSIGN_CUSTOMERS_TO_TEMPLATE,   //assign customers to template by their rate, age, region and marketing permissions
    ADDRESS_CUSTOMER,               // Check customer for addressing. 
    ADD_RESPONSE,                   // Add new customer response to the DB.
    SHOW_PRODUCT_IN_SALE,           // Show product in sale.
    ADD_RESPONSE_WITH_CART,          // Add new response with a new cart.
    GET_APPROVED_TEMPLATES,			// get list of all templates with approved status
    SALES_REPORT                     /// generate sales report

	
	
	
	



}
